
#include "uvo.h"

namespace anb { namespace net {


uvo::uvo(const std::string& alias, type type) : m_alias(alias), m_type(type), m_stop(false) {
	m_alias = alias;
	m_type = type;
	m_stop = false;
}

uvo::~uvo() {
}

const std::string& uvo::get_alias() const {
	return m_alias;
}

void uvo::set_alias(const std::string& alias) {
	m_alias = alias;
}

uvo::type uvo::get_type() {
	return m_type;
}

bool uvo::is_stop() {
	return m_stop;
}

void uvo::stop() {
	if (m_stop) {
		return;
	}
	m_stop = true;
    fprintf(stdout, "%s stopped\n", get_alias().c_str());
}

void uvo::log(const std::string& s) {
    fprintf(stdout, "%s %s\n", get_alias().c_str(), s.c_str());
}

void uvo::log_error(int err, const std::string& s) {
    fprintf(stderr, "%s %s %s: %s\n", get_alias().c_str(), s.c_str(), uv_err_name(err), uv_strerror(err));
}

} }
